﻿<!DOCTYPE html>

<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8" />
    <title></title>
</head>
<body>
    <script>
        /* 
    伪数组 (arrayLike/类数组)
       是一种按照索引存储数据且具有 length 属性的对象。
       因为是对象，所以不能调用数组的方法，比如 forEach()、push() 等。

    类数组对象(伪数组)满足一下条件：
      1. 对象必须有属性，并指定数组的长度，否则转化后就是空数组
      2. 数组对象的属性必须是数值或数值型字符串，并且从0，1，2，3，

    类(伪)数组对象，转化为数组  Array.from(obj) 
  */

        function sum() {
            console.log(typeof arguments);
            console.log(arguments);
            // arguments.push("张飞");

            let temp = Array.from(arguments);
            temp.push("张飞");
            console.log(temp);
        }
        sum(1, 2, 3, 4, 5);

        let obj = {
            0: "剑圣",
            1: true,
            2: 25,
            3: "船长",
            length: 4
        };

        let result = Array.from(obj);
        console.log(obj);
        result.push("张飞");
        console.log(result);
    </script>
</body>
</html>